$(function() {
    buttenControl();
    $('#tb_ads').bootstrapTable({
        method: 'GET',                      //请求方式（*）
        // url: 'list.json',         //请求后台的URL（*）
        url:projectPath + "/base/roles/list",
        contentType: 'application/x-www-form-urlencoded',
        toolbar: '#toolbar',                //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: true,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        search:false,
        queryParams: roleQueryParams,//传递参数（*）
        sidePagination: "client",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                       //初始化加载第一页，默认第一页
        pageSize: 10,                       //每页的记录行数（*）
        pageList: [10,20,50],        //可供选择的每页的行数（*）
        strictSearch: true,
        clickToSelect: true,                //是否启用点击选中行
        uniqueId: "id",
        showColumns: true,                  //是否显示所有的列
        showRefresh: true,                  //显示刷新按钮
        showToggle: true,
        minimumCountColumns: 2,             //最少允许的列数
        singleSelect:true,
        paginationPreText: "上一页",
        paginationNextText: "下一页",
        columns: [
            {field: 'check', checkbox: true},
            {field: '', title: '序号', align: 'center', formatter: function (value, row, index) {
                // return index + 1;
                return "<div style='white-space: nowrap;'>" + (index+1) + "</div>";
            }},
            {field: 'uuid', title: '主键', align: 'center', visible:false},
            {field: 'rolename', title: '角色名称',sortable:true, align: 'center',formatter:function(value, row, index){
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'baseMenu', title: '拥有权限',sortable:true, align: 'center',formatter:function(value, row, index){
                return '<div style="white-space: nowrap;"><a href="javascript:;" onclick="roleDetails(2,\''+row.uuid+'\',\''+row.rolename+'\')">权限查看</a></div>';
            }},
            {field: 'createdat', title: '创建时间',sortable:true, align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + getLocalTime(value) + "</div>";
            }},
        ],
        responseHandler: function (data) {
            return data.data;
        }
    });
    // 查询
    $("#btnQuery").click(function(){
        $('#tb_ads').bootstrapTable('refresh', {url:  projectPath + "/base/roles/list"});
    });
    // 置空
    $("#btnEmpty").click(function () {
        $("#roleName").val("");
    });
});

function roleQueryParams() {
    var filterinfo = {};
    if($("#roleName").val() != ""){
        filterinfo.roleName = $("#roleName").val();
    };
    return filterinfo;
};

// 删除
$("#btnDelete").on("click",function(){
    var ids = getSelectedDeleteParams();
    if (ids != '' && ids != null) {
        layerAlert.confirmMessage("确定要删除?",projectPath + "/base/roles/del?uuid="+ids, function(data){
            if(data.code == "0"){
                layerAlert.successMessage("操作成功","");
            }else{
                layerAlert.errorMessage("出错了");
            };
        });
    }else{
        layerAlert.errorMessage("您的选择为空");
    }
});

// 后台验证角色是否占用
$("#name").on("change",function () {
    $.ajax({
        type:"POST",
        url: projectPath + '/base/roles/qryRoleCountByRoleName?roleName=' + $("#name").val(),
        dataType:"json",
        success:function (data) {
            if(data.data == 1){
                layerAlert.warnMessage("该名称已占用,请重新填写");
                $("#name").val("");
            }
        },
        error:function () {
            layerAlert.errorMessage("数据错误");
        }
    })
});


// 新增
$("#btnAdd").on("click",function () {
    formValidator();
    $('#roleJsTree').jstree("destroy");
    roleDetails(0,'','');
})

// 修改
$("#brnRevise").click(function(){
    var ids = getSelectedDeleteParams();
    if (!ids || ids == '' || ids == null) {
        layerAlert.errorMessage("您的选择为空");
        return;
    }
    roleDetails(1,ids,'');
});
//修改回显以及弹窗
function roleDetails(status,uuid,rolenamne) {
    var title = '';
    var btn = [];
    if(status == 2){
        title='详情';
        $("#name").prop("readonly",true);
        btn = ['取消'];
    } else if (status==0){
        title='新增';
        $("#name").prop("readonly",false);
        btn = ['选择','取消'];
    } else  if (status==1){
        title='修改';
        rolenamne = $('#tb_ads').bootstrapTable('getSelections')[0].rolename;
        $("#name").prop("readonly",false);
        btn = ['选择','取消'];
    } else {
        return;
    }
    $("#name").val(rolenamne);

    var index = layer.open({
        type:1,
        title:title,
        shade:0.3,
        shadeClose: true,
        move:false,
        area: ['60%', '80%'],
        skin: 'layui-layer-rims',
        content:$("#addMenu"),
        btn:btn,
        fixed:false,
        resize:true,
        maxmin:true,
        success:function(){
            if(status == 0){
                initMenuTree('roleJsTree',false)
            } else {
                // 角色授权回显
                $.ajax({
                    url: projectPath + '/base/menus/tree?uuid=' + uuid,
                    type: 'GET',
                    dataType: 'json',
                    success: function (data) {
                        initMenuTree('roleJsTree',true,data.data);
                    },
                    error: function (data) {
                        layerAlert.errorMessage("数据错误！");
                    }
                });
            }
        },
        btn1:function(){
            if(status == 0 || status == 1 ) {
                // 角色授权回显
                var checkedNodes = $('#roleJsTree').jstree("get_all_checked").toString();
                var dataParams = {
                    uuid: uuid,
                    roleName: $("#name").val(), // 角色名称
                    menuUuids: checkedNodes,
                };
                updateRoleByuuid(dataParams, status);
            }
            $.jstree.destroy();
        },
        btn2:function () {
            $.jstree.destroy();
        },
        cancel: function(){
            $.jstree.destroy();
        }
    });

}
//修改新增功能
function updateRoleByuuid(dataParams, status) {
    if(dataParams.roleName == ''){
        layerAlert.warnMessage("请填写角色名称!");
        return;
    }
var urls = '';
if(status == 0){
    urls = '/base/roles/insert';
}else if(status == 1){
    urls = '/base/roles/update';
    }
    $.ajax({
        url: projectPath + urls,
        type: 'POST',
        dataType: 'json',
        data: dataParams,
        success:function(data){
            if(data.code == "0"){
                layerAlert.successMessage("修改成功","");
            }else{
                layerAlert.errorMessage("修改失败");
            }
        },
        error:function(){
            layerAlert.errorMessage("网络异常");
        }
    });
}
// 新增修改提交验证
function formValidator(){
    $(".bootstrapValidators").bootstrapValidator({
        message: 'This value is not valid',
        feedbackIcons: {
            //valid: 'glyphicon glyphicon-ok',
            //invalid: 'glyphicon glyphicon-remove',
            //validating: 'glyphicon glyphicon-refresh'
        },
        fields:{
            name:{
                validators:{
                    notEmpty: {
                        message: '请填写角色名称'
                    },
                },
            },
        }
    });
};

/**
 * zhangYiHang 18.3.20
 * 页面按钮控制
 * @constructor
 */
function buttenControl() {
    var urls = paramUrlByButten();
    for (var i in urls){
        if('update' == urls[i]){
            $("#brnRevise").show();
        } else if('insert' == urls[i]){
            $("#btnAdd").show();
        }else if('delete' == urls[i]){
            $("#btnDelete").show()
        }
    }
}